home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / flight-of-the-museum.swf / scripts / com / google / analytics / core / IdleTimer.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  2.8 KB  |  86 lines

  1. package com.google.analytics.core
  2. {
  3.    import com.google.analytics.debug.DebugConfiguration;
  4.    import com.google.analytics.debug.VisualDebugMode;
  5.    import com.google.analytics.v4.Configuration;
  6.    import flash.display.DisplayObject;
  7.    import flash.display.Stage;
  8.    import flash.events.MouseEvent;
  9.    import flash.events.TimerEvent;
  10.    import flash.utils.Timer;
  11.    import flash.utils.getTimer;
  12.    
  13.    public class IdleTimer
  14.    {
  15.        
  16.       
  17.       private var _stage:Stage;
  18.       
  19.       private var _loop:Timer;
  20.       
  21.       private var _lastMove:int;
  22.       
  23.       private var _inactivity:Number;
  24.       
  25.       private var _debug:DebugConfiguration;
  26.       
  27.       private var _session:Timer;
  28.       
  29.       private var _buffer:Buffer;
  30.       
  31.       public function IdleTimer(config:Configuration, debug:DebugConfiguration, display:DisplayObject, buffer:Buffer)
  32.       {
  33.          super();
  34.          var delay:Number = config.idleLoop;
  35.          var inactivity:Number = config.idleTimeout;
  36.          var sessionTimeout:Number = config.sessionTimeout;
  37.          _loop = new Timer(delay * 1000);
  38.          _session = new Timer(sessionTimeout * 1000,1);
  39.          _debug = debug;
  40.          _stage = display.stage;
  41.          _buffer = buffer;
  42.          _lastMove = getTimer();
  43.          _inactivity = inactivity * 1000;
  44.          _loop.addEventListener(TimerEvent.TIMER,checkForIdle);
  45.          _session.addEventListener(TimerEvent.TIMER_COMPLETE,endSession);
  46.          _stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
  47.          _debug.info("delay: " + delay + "sec , inactivity: " + inactivity + "sec, sessionTimeout: " + sessionTimeout,VisualDebugMode.geek);
  48.          _loop.start();
  49.       }
  50.       
  51.       private function onMouseMove(event:MouseEvent) : void
  52.       {
  53.          _lastMove = getTimer();
  54.          if(_session.running)
  55.          {
  56.             _debug.info("session timer reset",VisualDebugMode.geek);
  57.             _session.reset();
  58.          }
  59.       }
  60.       
  61.       public function endSession(event:TimerEvent) : void
  62.       {
  63.          _session.removeEventListener(TimerEvent.TIMER_COMPLETE,endSession);
  64.          _debug.info("session timer end session",VisualDebugMode.geek);
  65.          _session.reset();
  66.          _buffer.resetCurrentSession();
  67.          _debug.info(_buffer.utmb.toString(),VisualDebugMode.geek);
  68.          _debug.info(_buffer.utmc.toString(),VisualDebugMode.geek);
  69.          _session.addEventListener(TimerEvent.TIMER_COMPLETE,endSession);
  70.       }
  71.       
  72.       public function checkForIdle(event:TimerEvent) : void
  73.       {
  74.          var current:int = getTimer();
  75.          if(current - _lastMove >= _inactivity)
  76.          {
  77.             if(!_session.running)
  78.             {
  79.                _debug.info("session timer start",VisualDebugMode.geek);
  80.                _session.start();
  81.             }
  82.          }
  83.       }
  84.    }
  85. }
  86.